<!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
<stack>
<name>in</name>
<id>-1</id>
<cardCount>1</cardCount>
<cardID>2932</cardID>
<listID>4405</listID>
<cantModify><false /></cantModify>
<cantDelete><false /></cantDelete>
<cantAbort><false /></cantAbort>
<cardSize>
<width>512</width>
<height>880</height>
</cardSize>
<script><<Online Servant version 1.24 (C)1991-93 by Paul A. Collins>>on openStackglobal servantNamehide window "scroll"if item four of the screenRect is 342then set the rect of card window to 0,20,512,342put the number of this card into fld "Page"if servantName is empty thenput ":" & the short name of this stack into servantNamego to card one of stack "Online Servant Stuff" in a new windowif the result is not empty thengo to card one of stack "Online Servant Stuff"end ifelseuseStack "Online Servant Stuff"useStack "OS Tools 1"if there is a menu "Servant" then enable menu "Servant"else createMenuend ifend openStackon closeStackif there is a menu "Servant" then delete Menu "Servant"restoreUserLevelif "OS " is not in the windowsthenstopUsingStack "Online Servant Stuff"stopUsingStack "OS Tools 1"end ifhide msgend closeStackon suspendStackif there is a menu "Servant" then delete Menu "Servant"end suspendStackon resumeStackglobal servantNameif servantName is empty then -- in case this msg comes up earlyopenStackexit to HyperCardend ifuseStack "Online Servant Stuff"useStack "OS Tools 1"if there is a menu "Servant" then enable menu "Servant"else createMenuend resumeStackon find modifier,theWordif the optionKey is down thenfindName theWordelsefindAnyend ifend findon findAnysend message to HyperCardif the result is not empty then beepend findAnyon findName theWordget "find "& quote& theWord& quote &" in field Topic"send it to hypercardif the result is not empty then beepend findNameon stackStartglobal ServantNameunmark all cardsmark cards by finding word "R" in fld "Flag"get the number of marked cardsif it > 0 thenanswer "You have " & it & " cards marked for sending to GEnie. Are you sure " & ¬"you want to archive them without sending and start a new stack?" with "OK" or "Cancel"if it is not "OK" thengo next marked cardexit stackStartend ifend iflock ScreendoArchiveget the rect of cd windowset the name of this stack to servantName & "." & the secondscreate stack servantName with this bgset the rect of cd window to itunlock Screenif the result is not empty then answer the result with "Rats."elseput "This is your new empty stack."wait 1 secput ""hide msgend ifend stackStarton doArchive presetglobal servantnameset lockmessages to truepush cdgo to card "Settings" of stack "online Servant Stuff"if the hilite of cd btn id 17 is false thenpop cardif preset is true thenreturn falseend ifelseput cd fld "folderPath" into folderPathgo to card 1 of stack servantNamemark all cardsunmark cards where fld "GEPage" is emptyunmark cards by finding "Logon" in fld "GEPage"unmark cards by finding "F" in fld "Flag"unmark cards by finding "D" in fld "Flag"if preset is true then return folderPathput "Archiving messages & mail..."repeatset cursor to busygo next marked cardif the result is not empty then exit repeatunmark this cardarcCard folderPathend repeatput emptyhide msgend ifset lockmessages to falseend doArchiveon arcCard folderPathput fld "GEPage" into gPageput fld "Cat" into Catif gPage is not "Mail" and Cat is empty then exit arcCardput "OS," into fNameif gPage is "Mail" then put char 1 to 12 of item 1 of fld "Reply To" after fNameelseput fld "Topic" into gTopif gPage is not a number then put "0000" into gPageif cat is not a number then put "00" into catif gTop is not a number then put "00" into gTopput oPad(gPage,4) & "," & oPad(cat,2) & "," & oPad(gTop,2) after fNameend ifif item 4 of fName is "00" then put "•Banners" into item¬3 to 4 of fNameput folderPath before fNameif there is a file fName thenopen file fNamerepeatread from file fName for 16384if it is empty then exit repeatend repeatput return & "<<<<<>>>>>" & return & fld "text" into theDataif gPage ≠ "Mail" then delete line 3 to 9 of theDatawrite theData to file fName --appendingget fld "Reply"if it is not emptythen write return & return & "<<<REPLY>>>" & return & it to file fNameclose file fNameelseopen file fNameif gPage ≠ "Mail" thenwrite fld "RTName" & return to file fNamewrite "<<<< Category: " & cat & " >>>>" & return to file fNameend ifwrite "<<<< Topic: " & fld "Topic" &" >>>>>" & return to file fNamewrite fld "text" to file fNameget fld "Reply"if it is not emptythen write return & return & "<<<REPLY>>>" & return & it to file fNameclose file fNameend ifend arcCardon useStack theStack-- make sure the stack can be 'used'if theStack is in the stacksInUse then exit useStackif the number of lines in the stacksInUse = 10then stop using stack (line 1 of the stacksInUse)if there is a stack theStack thenstart using stack theStackget the resultif it is not empty thenanswer it & "(The “" & theStack & "” stack is required to"¬& "run this stack.)"exit to hyperCardend ifend ifend useStackon stopUsingStack theStackglobal FileNameif theStack is in the stacksInUsethen stop using stack theStackend stopUsingStackon closeMoglobal servantNameclose card windowgo to stack "Online Servant Stuff"close card windowput empty into servantNameend closeMofunction wrapit atextif the optionKey is up thenrepeat while return is in aTextput space into char offset(return,aText) of aTextend repeatend ifput 76 into lineLengthput empty into newTextrepeat with x = one to the number of lines in atextset the cursor to busyput line x of atext into thisLineif the length of thisLIne <= lineLength thenput "> " & thisLine & return after newTextelserepeat until the length of thisLine <= lineLengthget the number of words in char 1 to lineLength of thisLineif char linelength to linelength + one of thisLIne¬contains " " then add one to itsubtract one from itput "> " & word one to it of thisLine & return after newTextdelete word one to it of thisLineend repeatput "> " & thisLine & return after newTextend ifend repeatreturn newTextend wrapit</script>